package com.lanchetech.dao;

import java.util.Date;

import com.lanchetech.entity.AreaApplyDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AreaApplyDetailMapper {
    int deleteByPrimaryKey(Long id);

    int insert(AreaApplyDetail record);

    int insertSelective(AreaApplyDetail record);

    AreaApplyDetail selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(AreaApplyDetail record);

    int updateByPrimaryKey(AreaApplyDetail record);

    List<AreaApplyDetail> findAllByCityAndStatus(@Param("city") Long city, @Param("status") Byte status);

    int batchInsert(@Param("list") List<AreaApplyDetail> list);

    int deleteByAreaApplyId(@Param("areaApplyId") Long areaApplyId);

    List<AreaApplyDetail> findAllByAreaApplyIds(@Param("list") List<Long> collect);

    int updateStatusAndUpdatedAtByAreaApplyId(@Param("updatedStatus") Byte updatedStatus, @Param("updatedUpdatedAt") Date updatedUpdatedAt, @Param("areaApplyId") Long areaApplyId);

    List<AreaApplyDetail> findAllByAreaApplyId(@Param("areaApplyId") Long areaApplyId);

    int cancelAreaApply(@Param("status") Byte status, @Param("id") Long id);

    List<AreaApplyDetail> findAllByAreasAndStatus(@Param("list") List<Long> collect, @Param("status") Byte status);

	AreaApplyDetail findOneByAreaAndStatus(@Param("area")Long area,@Param("status")Byte status);

}